package com.hnit.service;

import com.hnit.web.DTO.AddressDTO;

import java.util.List;

/**
 * @program: shopping147_cloud
 * @description: 用户地址服务接口
 * @author: dy
 * @create: 2025-08-03 15:20
 */
public interface AddressService {

    /**
     * 查询用户的所有地址
     *
     * @param userId 用户ID
     * @return 地址DTO列表
     */
    List<AddressDTO> getAddressesByUserId(Long userId);

    /**
     * 添加用户地址
     *
     * @param addressDTO 待添加的地址信息
     * @return 添加成功后的地址DTO
     */
    AddressDTO addAddress(AddressDTO addressDTO);

    /**
     * 更新用户地址
     *
     * @param addressDTO 待更新的地址信息
     * @return 更新成功后的地址DTO
     */
    AddressDTO updateAddress(AddressDTO addressDTO);

    /**
     * 删除用户地址
     *
     * @param addressId 地址ID
     * @return 是否删除成功
     */
    boolean deleteAddress(Long addressId);

    /**
     * 根据地址ID获取地址详情
     *
     * @param addressId 地址ID
     * @return 地址DTO
     */
    AddressDTO getAddressById(Long addressId);

    /**
     * 设置默认地址
     *
     * @param addressId 地址ID
     * @param userId    用户ID
     * @return 是否设置成功
     */
    boolean setDefaultAddress(Long addressId, Long userId);
}